package put_file

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

var PUT_File put_file

type put_file struct{}

// 新增
func (*put_file) PUT_avatar(c *gin.Context) {
	// 限制上传大小
	if c.Request.ContentLength > 10<<20 {
		c.JSON(http.StatusBadRequest, gin.H{
			"code": 90400,
			"msg":  "文件大小超过限制",
			"data": nil,
		})
		return
	}

	// 从请求中获取上传的文件
	file, err := c.FormFile("touxiang")
	if err != nil {
		c.JSON(http.StatusBadRequest, gin.H{
			"code": 90400,
			"msg":  err.Error(),
			"data": nil,
		})
		return
	}

	// 验证文件是否为图片文件
	fileExt := file.Filename[len(file.Filename)-4:]
	if fileExt != ".jpg" && fileExt != ".png" && fileExt != ".gif" && fileExt != ".jpeg" {
		c.JSON(http.StatusBadRequest, gin.H{
			"code": 90400,
			"msg":  "文件不是图片文件",
			"data": nil,
		})
		return
	}

	// 保存文件到指定目录
	dst := "E:\\BaiduNetdiskDownload\\day07\\k8s-platform-vue\\src\\assets\\avator\\" + file.Filename
	if err := c.SaveUploadedFile(file, dst); err != nil {
		c.JSON(http.StatusInternalServerError, gin.H{
			"code": 90500,
			"msg":  err.Error(),
			"data": nil,
		})
		return
	}

	// 处理完成，返回成功信息
	c.JSON(http.StatusOK, gin.H{
		"code": 0,
		"msg":  "文件上传成功",
		"data": nil,
	})
}
